package com.sanjiahantang.youjiaclient.module.common.models;

import android.content.Context;

import com.sanjiahantang.youjiaclient.base.BaseBean;
import com.sanjiahantang.youjiaclient.base.CallBack;
import com.sanjiahantang.youjiaclient.module.common.beans.HelpBean;
import com.sanjiahantang.youjiaclient.module.login.beans.LoginBean;
import com.sanjiahantang.youjiaclient.module.common.beans.MessageBean;
import com.sanjiahantang.youjiaclient.module.common.beans.MessageNoticeCountBean;
import com.sanjiahantang.youjiaclient.module.common.beans.MessageUseNoticeBean;
import com.sanjiahantang.youjiaclient.module.common.beans.StringBean;
import com.sanjiahantang.youjiaclient.module.common.beans.UserBean;
import com.sanjiahantang.youjiaclient.module.complain.beans.ComplainBean;
import com.sanjiahantang.youjiaclient.module.evaluate.beans.EvaGoodsBean;
import com.sanjiahantang.youjiaclient.module.evaluate.beans.EvaServiceBean;
import com.sanjiahantang.youjiaclient.module.me.address.beans.AddressBean;
import com.sanjiahantang.youjiaclient.module.me.address.beans.AddressDetailBean;
import com.sanjiahantang.youjiaclient.module.me.order.beans.OrderBean;
import com.sanjiahantang.youjiaclient.module.me.scheme.beans.MeCaseOBean;
import com.sanjiahantang.youjiaclient.module.me.scheme.beans.SchemeBean;

import java.util.Map;

/**
 * Created by zy on 2017/9/4.
 */

public interface IUserModel {
    void loadUserInfo(Context context, Map<String, String> params, CallBack<StringBean> callBack);

    void doLogin(Context context, Map<String, String> params, CallBack<LoginBean> callBack,String tag);

    void doChangePassword(Context context, Map<String, Object> params, CallBack<StringBean> callBack);

    void getUserMessage(Context context, Map<String, String> params,CallBack<MessageBean> callBack);

    void getUseNoticeForCustomer(Context context, Map<String, Object> params,CallBack<MessageUseNoticeBean> callBack);

    void getSearchNoticeCountForCustomer (Context context, Map<String, String> params,CallBack<MessageNoticeCountBean> callBack);

    void loadServiceEvaData(Context context, CallBack<EvaServiceBean> callBack);

    void loadGoodsEvaData(Context context, CallBack<EvaGoodsBean> callBack);

    void loadMeComplainList(Context context, int type, CallBack<ComplainBean> callBack);

    void loadSchemeList(Context context, Map<String, String> params, CallBack<MeCaseOBean.InfoListData > callBack);

    void loadSchemeDetail(Context context, Map<String, String> params, CallBack<SchemeBean> callBack);

    void getAddressList(Context context, Map<String, String> params, CallBack<AddressBean> callBack);

    void deleteAddress(Context context, Map<String, String> params, CallBack<BaseBean> callBack);

    void saveAddress(Context context, Map<String, Object> params, CallBack<BaseBean> callBack);

    void loadAddressDetail(Context context, Map<String, String> params, CallBack<AddressDetailBean> callBack);



    void getCreatedOrder(Context context, Map<String, String> params, CallBack<OrderBean> callBack);

    void editDefaultAddress(Context context, Map<String, Object> params, CallBack<BaseBean> callBack);

    void dopersonData(final Context context, Map<String, String> params, final CallBack<UserBean> callBack);

    void senMessageCode(final Context context, Map<String, String> params, final CallBack<StringBean> callBack);

    void doforgetPassword(final Context context, Map<String, String> params,final CallBack<StringBean> callBack);

    void updatePerson(final Context context, Map<String, Object> params,final CallBack<StringBean> callBack);

    void updateUserDuty(final Context context, Map<String, String> params,final CallBack<UserBean> callBack);

    void loadHelpList(Context context, Map<String, Object> param, CallBack<HelpBean> callBack);

    void loadHelpArticle(Context context, Map<String, String> param, CallBack<HelpBean> callBack);

    void findPassword(Context context, Map<String, String> params, CallBack<StringBean> callBack);

    void getRegisterCustomerPassWordCode(Context context, Map<String, String> params, CallBack<StringBean> callBack);

    void findNoticeInfoById(Context context, Map<String, String> param, CallBack<StringBean> callBack);

    void modifyPayPwd(Context context, Map<String, Object> params, CallBack<StringBean> callBack);
}
